\chapter{1730年，斯特林公式的推导及其应用}
\author{李国斌}
\date{2025年9月8日}
	
	\begin{abstract}
		本文详细研究了斯特林公式(Stirling's formula)的多种推导方法。斯特林公式给出了阶乘函数的渐近表达式：
		\[
		n! \sim \sqrt{2\pi n} \left(\frac{n}{e}\right)^n \quad (n \to \infty)
		\]
		本文首先介绍斯特林公式的历史背景，然后通过Gamma函数积分表示、鞍点法、Wallis乘积等多种方法系统推导该公式，并给出误差分析和数值验证。最后探讨了斯特林公式在概率论、统计力学和信息论等领域的重要应用。
	\end{abstract}
	
	\section{引言}
	\subsection{历史背景}
	斯特林公式以苏格兰数学家James Stirling (1692-1770)命名，他在1730年发表的《微分法》中给出了阶乘的渐近展开。实际上，亚伯拉罕·棣莫弗(Abraham de Moivre)几乎同时独立发现了类似的结果，但斯特林给出了更精确的常数项$\sqrt{2\pi}$。
	
	\subsection{公式表述}
	斯特林公式的标准形式为：
	\begin{equation}
		n! \sim \sqrt{2\pi n} \left(\frac{n}{e}\right)^n \left(1 + \frac{1}{12n} + \frac{1}{288n^2} - \frac{139}{51840n^3} + \cdots \right)
	\end{equation}
	最常用的近似形式为：
	\begin{equation}
		n! \sim \sqrt{2\pi n} \left(\frac{n}{e}\right)^n
	\end{equation}
	
	\section{通过Gamma函数的推导}
	\subsection{Gamma函数积分表示}
	由Gamma函数的积分定义：
	\begin{equation}
		n! = \Gamma(n+1) = \int_0^\infty x^n e^{-x} dx
	\end{equation}
	
	\subsection{变量替换与拉普拉斯方法}
	令$x = n(1 + t)$，则：
	\begin{align*}
		n! &= \int_0^\infty [n(1+t)]^n e^{-n(1+t)} n dt \\
		&= n^{n+1} e^{-n} \int_{-1}^\infty (1+t)^n e^{-nt} dt \\
		&= n^{n+1} e^{-n} \int_{-1}^\infty e^{n[\ln(1+t) - t]} dt
	\end{align*}
	
	定义函数：
	\[
	\phi(t) = \ln(1+t) - t
	\]
	在$t=0$处展开：
	\[
	\phi(t) = -\frac{t^2}{2} + \frac{t^3}{3} - \frac{t^4}{4} + \cdots
	\]
	
	\subsection{拉普拉斯近似}
	对于大的$n$，积分主要贡献来自$t=0$附近：
	\begin{align*}
		n! &\sim n^{n+1} e^{-n} \int_{-\infty}^\infty e^{-n t^2/2} dt \\
		&= n^{n+1} e^{-n} \sqrt{\frac{2\pi}{n}} \\
		&= \sqrt{2\pi n} \left(\frac{n}{e}\right)^n
	\end{align*}
	
	\begin{figure}[h]
		\centering
		\begin{tikzpicture}
			\begin{axis}[
				width=0.8\textwidth,
				height=6cm,
				domain=-1.5:1.5,
				samples=100,
				xlabel=$t$,
				ylabel={被积函数},
				legend pos=north east,
				grid=major,
				title={被积函数$e^{n\phi(t)}$在不同$n$值时的行为}
				]
				
				% n=1
				\addplot[blue, thick] {exp(1*(ln(1+x) - x))};
				% n=5
				\addplot[red, thick] {exp(5*(ln(1+x) - x))};
				% n=10
				\addplot[green, thick] {exp(10*(ln(1+x) - x))};
				% 高斯近似
				\addplot[black, dashed, domain=-0.5:0.5] {exp(-10*x*x/2)};
				
				\legend{$n=1$, $n=5$, $n=10$, 高斯近似}
			\end{axis}
		\end{tikzpicture}
		\caption{拉普拉斯方法示意图：随着$n$增大，被积函数越来越集中在$t=0$附近}
	\end{figure}
	
	\section{通过Wallis乘积的推导}
	\subsection{Wallis乘积公式}
	Wallis乘积给出了$\pi$的无穷乘积表示：
	\begin{equation}
		\frac{\pi}{2} = \prod_{n=1}^\infty \frac{(2n)(2n)}{(2n-1)(2n+1)} = \frac{2}{1} \cdot \frac{2}{3} \cdot \frac{4}{3} \cdot \frac{4}{5} \cdot \frac{6}{5} \cdot \frac{6}{7} \cdots
	\end{equation}
	
	\subsection{双阶乘与阶乘的关系}
	考虑比值：
	\[
	\frac{(2n)!}{(2^n n!)^2} = \frac{1 \cdot 3 \cdot 5 \cdots (2n-1)}{2 \cdot 4 \cdot 6 \cdots (2n)} = \frac{(2n-1)!!}{(2n)!!}
	\]
	
	由Wallis乘积：
	\[
	\frac{\pi}{2} = \lim_{n\to\infty} \frac{1}{2n+1} \left[\frac{(2n)!!}{(2n-1)!!}\right]^2
	\]
	
	\subsection{推导斯特林常数}
	假设斯特林公式形式为：
	\[
	n! \sim C \sqrt{n} \left(\frac{n}{e}\right)^n
	\]
	
	则：
	\[
	\frac{(2n)!}{(n!)^2} \sim \frac{C \sqrt{2n} (2n/e)^{2n}}{[C \sqrt{n} (n/e)^n]^2} = \frac{2^{2n}}{C \sqrt{\pi n}}
	\]
	
	另一方面，由中心二项式系数：
	\[
	\frac{(2n)!}{(n!)^2} \sim \frac{4^n}{\sqrt{\pi n}}
	\]
	
	比较得$C = \sqrt{2\pi}$，故：
	\[
	n! \sim \sqrt{2\pi n} \left(\frac{n}{e}\right)^n
	\]
	
	\section{误差分析与精确形式}
	\subsection{斯特林级数}
	更精确的斯特林公式为：
	\[
	n! = \sqrt{2\pi n} \left(\frac{n}{e}\right)^n e^{\frac{1}{12n} - \frac{1}{360n^3} + \frac{1}{1260n^5} - \cdots}
	\]
	
	\subsection{相对误差分析}
	定义相对误差：
	\[
	\delta(n) = \frac{n! - \sqrt{2\pi n} (n/e)^n}{n!}
	\]
	
	\begin{table}[h]
		\centering
		\begin{tabular}{cccc}
			\toprule
			$n$ & $n!$ & 斯特林近似 & 相对误差 (\%) \\
			\midrule
			1 & 1 & 0.922 & 7.79 \\
			5 & 120 & 118.019 & 1.65 \\
			10 & 3628800 & 3598695.619 & 0.83 \\
			20 & $2.43\times10^{18}$ & $2.42\times10^{18}$ & 0.42 \\
			100 & $9.33\times10^{157}$ & $9.32\times10^{157}$ & 0.08 \\
			\bottomrule
		\end{tabular}
		\caption{斯特林公式的数值精度}
	\end{table}
	
	\begin{figure}[h]
		\centering
		\begin{tikzpicture}
			\begin{axis}[
				width=0.8\textwidth,
				height=6cm,
				xlabel=$n$,
				ylabel={相对误差 (\%)},
				legend pos=north east,
				grid=major,
				xmode=log,
				ymode=log,
				title={斯特林公式相对误差随$n$的变化}
				]
				
				\addplot[blue, thick] coordinates {
					(1, 7.79)
					(2, 4.05)
					(5, 1.65)
					(10, 0.83)
					(20, 0.42)
					(50, 0.17)
					(100, 0.08)
				};
				
			\end{axis}
		\end{tikzpicture}
		\caption{斯特林公式的相对误差随$n$增大而减小}
	\end{figure}
	
	\section{应用领域}
	\subsection{概率论与统计学}
	在二项分布中，当$n$很大时：
	\[
	P(X = k) = \binom{n}{k} p^k (1-p)^{n-k} \approx \frac{1}{\sqrt{2\pi np(1-p)}} e^{-\frac{(k-np)^2}{2np(1-p)}}
	\]
	这导出了正态近似（棣莫弗-拉普拉斯中心极限定理）。
	
	\subsection{统计力学}
	在统计力学中，斯特林公式用于处理大系统：
	\[
	\ln N! \approx N \ln N - N + \frac{1}{2} \ln(2\pi N)
	\]
	这对于推导玻尔兹曼分布、费米-狄拉克分布等至关重要。
	
	\subsection{信息论}
	在信息论中，组合数的斯特林近似用于计算熵和容量：
	\[
	\log_2 \binom{n}{k} \approx n H\left(\frac{k}{n}\right) - \frac{1}{2} \log_2(2\pi n \frac{k}{n}(1-\frac{k}{n}))
	\]
	其中$H(p) = -p\log_2 p - (1-p)\log_2(1-p)$是二进制熵函数。
	
	\section{推广与变体}
	\subsection{Gamma函数的斯特林公式}
	对于一般的Gamma函数：
	\[
	\Gamma(z) \sim \sqrt{\frac{2\pi}{z}} \left(\frac{z}{e}\right)^z \left(1 + \frac{1}{12z} + \frac{1}{288z^2} - \cdots \right) \quad (|\arg z| < \pi)
	\]
	
	\subsection{带参数的斯特林公式}
	对于$n \to \infty$，$k = O(\sqrt{n})$时：
	\[
	\ln(n + k)! = \ln n! + k \ln n + \frac{k^2}{2n} - \frac{k}{2n} + O\left(\frac{1}{n}\right)
	\]
	
	\section{结论}
	斯特林公式是数学分析中的一个重要工具，它通过简洁的渐近表达式揭示了阶乘函数的深层结构。本文展示了多种推导方法，包括Gamma函数积分法、Wallis乘积法等，每种方法都从不同角度揭示了公式的本质。
	
	斯特林公式不仅在理论数学中具有重要意义，在概率论、统计力学、信息论等应用科学领域也有广泛用途。随着$n$的增大，斯特林近似的精度迅速提高，使其成为处理大数计算的有效工具。
	
	公式中出现的$\sqrt{2\pi}$常数连接了阶乘与圆周率，体现了数学不同分支之间的深刻联系，这也是数学之美的一个典型例证。
	